The use of Extensible Markup Language (XML) is increasing. As used herein, reference to XML includes variations of XML such as commerce XML (CXML), Rosetta Net XML, electronic publishing XML (EPXML), Ariba XML, and other variations of XML not listed here. Also, reference to XML includes related languages such as Extensible Stylesheet Language (XSL) and its variations.
XML provides a powerful and flexible tool for data exchange. In addition, XML documents are text-readable and hence user-friendly. This combination of powerful features and relative ease of use is a primary reason for the increase in XML usage.
However, XML documents are relatively verbose in their content, and the trend is toward increased verbosity because that makes XML documents even more readable. Consequently, XML documents are relatively large and can take a relatively long time to process (e.g., parse). Problems with memory usage and processing performance are common and well known among developers that work with XML. Larger documents can also take longer to transmit between nodes (e.g., between computer systems in a network).
Various attempts have been made to address these problems. Prior art solutions include the development of improved hardware including faster processors and server systems, and added memory. Software optimizations, such as parsers that use more efficient languages such as C/C++ instead of Java, have been introduced. In addition, different parsing techniques such as Document Object Model (DOM) and Simple API (Application Program Interface) for XML (SAX) have been developed. Compression techniques are typically used to reduce the size of an XML document.
However, each of these attempted solutions has their shortcomings. Hardware and software improvements can result in better performance relative to preceding generations, but these components still have their limits. For example, for a given processor speed, a larger XML document will still take longer to process. In addition, continual upgrades to hardware and software can be costly. DOM might provide some improvements in processing speed but generally does not provide improvements in memory usage because files in the DOM format are generally about the same size as the original XML document. On the other hand, SAX might provide some improvements in memory usage but generally does not increase processing speed. With SAX, only a portion of the XML document is handled at a time; if information from another portion of the document is needed, the document is re-read until the needed information is found. Compression techniques can reduce the time needed to send and receive XML documents; however, processing time on the sending node is consumed in order to compress the document, and on the receiving node in order to decompress the document.
In summary, prior art attempts to reduce memory usage and speed up processing of XML documents, while exhaustive, have their limitations. Accordingly, what is needed is a method or system that can reduce memory usage and speed up the exchange and processing of XML documents beyond the limitations of current hardware and software. The present invention provides a novel solution to these needs.